﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Aula15
{
    class Program
    {
        static void Main()
        {
            /** List<int> ListaObjectos = new List<int>();
             ListaObjectos.AddRange(new int[] { 1, 3, 4, 12, 5, 5, 2, 8 });
             IEnumerable<int> subconjunto = from g in
                                                ListaObjectos
                                            where g > 3
                                            select g;
             foreach (int g in subconjunto)
             {
                 Console.WriteLine(g);
                
             }
             Console.ReadLine();
             */

            /**
            // 1.Obter a fonte dos dados
            int[] numeros = new int[] { 0, 1, 2, 3, 4, 5, 6 };
            //2.criacao da consulta
            var numQry = from num in numeros
                         where (num % 2) == 0
                         select num;
            // 3.Execucao da consulta
            foreach (int num in numQry)
            {
                Console.WriteLine("---{0}---", num);
                
            }
            Console.ReadLine();
             */
            /**
            int[] valores = new int[] { 10, 5, 13, 12, 9 };
            IEnumerable<int> qry = from valor in valores
                                   where valor > 9
                                   orderby valor descending
                                   select valor;
            foreach (var valor in qry)
                Console.WriteLine(valor);
            Console.ReadLine();
             */
            /**
            int[] valores = new int[] { 10, 5, 13, 12, 9 };
            IEnumerable<string> qry =
                from valor in valores
                where valor > 9
                orderby valor descending
                select String.Format("O valor e {0}", valor);
            foreach (var valor in qry)
                Console.WriteLine(valor);
            Console.ReadLine();
             */
            Cidade[] cidades = {new Cidade(980000, "Lisboa"),
                                   new Cidade(450000, "Porto"),
                                   new Cidade(150000, "Coimbra"),
                                   new Cidade(30000, "Beja")
                               };
            IEnumerable<Cidade> qry =
                from cidade in cidades
                where cidade.Populacao >= 30000 && 
                cidade.Populacao < 2000000
                select cidade;
            foreach (var cidade in qry)
                Console.WriteLine(cidade.Nome);
            Console.ReadLine();


        }
        }
        public class Cidade 
        {
            public int Populacao{get; set;}
            public string Nome{get; set;}
            public Cidade(int Populacao, String Nome)
            {
                this.Populacao = Populacao;
                this.Nome = Nome;
            }
        }
             
    
}
